// Clase NodoABB // Método para mostrar el país del primer pasajero en la lista Método verPais(): Si listapas.getPrimero() no es nulo: Imprimir "País: " + listapas.getPrimero().getPasajero().getPais() Sino: Imprimir "Lista de pasajeros vacía" // Clase ABB // Método para ver el árbol en orden Método verInOrden(): Imprimir "Mostrando árbol en orden." verInOrden(raiz) // Método privado para ver el árbol en orden a partir de un nodo Método privado verInOrden(arb): Si arb es nulo: Retornar verInOrden(arb.hi) // Recursión para la rama izquierda arb.verPais() // Mostrar país verInOrden(arb.hd) // Recursión para la rama derecha // Método para verificar si un país está en el árbol Método esta(arb, pais) retorna booleano: Si arb es nulo: Retornar falso Si arb.listapas.getPrimero() no es nulo y arb.listapas.getPrimero().getPasajero().getPais() == pais: Retornar verdadero Sino: Retornar esta(arb.hi, pais) o esta(arb.hd, pais) // Método para obtener la raíz del árbol Método getRaiz() retorna NodoABB: Retornar raiz // Método para insertar un pasajero en la lista de un nodo Método insertarPasajeroEnLista(pasajero, nodo): Si nodo es nulo: Retornar Si nodo.listapas.getPrimero() no es nulo y nodo.listapas.getPrimero().getPasajero().getPais() == pasajero.getPais(): nodo.listapas.insertar(pasajero) Retornar insertarPasajeroEnLista(pasajero, nodo.hi) insertarPasajeroEnLista(pasajero, nodo.hd) // Método para insertar una ListaPas en el árbol Método insertar(pas): Imprimir "Insertando una ListaPas en el árbol." insertar2(pas, raiz) // Método privado para insertar una ListaPas a partir de un nodo Método privado insertar2(pas, nodo): Imprimir "Iniciando inserción en el árbol." Si raiz es nulo: Imprimir "La raíz es nula, insertando nuevo nodo en la raíz." raiz = nuevo NodoABB(pas) Si raiz.listapas.getPrimero() no es nulo: Imprimir "Nodo raíz insertado correctamente con país: " + raiz.listapas.getPrimero().getPasajero().getPais() Sino: Imprimir "Error: raiz.listapas.getPrimero() es nulo." Retornar Si nodo es nulo: Imprimir "Error: Nodo es nulo." Retornar Si pas.getPrimero() es nulo: Imprimir "Error: pas.getPrimero() es nulo." Retornar Si nodo.listapas.getPrimero() es nulo: Imprimir "Error: nodo.listapas.getPrimero() es nulo." Retornar paisNodo = nodo.listapas.getPrimero().getPasajero().getPais() paisPasajero = pas.getPrimero().getPasajero().getPais() Imprimir "Comparando países: nodo: " + paisNodo + ", pasajero: " + paisPasajero Si paisNodo > paisPasajero o paisNodo == paisPasajero: Si nodo.hi es nulo: NodoABB nuevo = nuevo NodoABB(pas) nodo.hi = nuevo Imprimir "Insertado en el subárbol izquierdo." Sino: insertar2(pas, nodo.hi) Sino: Imprimir "Es menor " + nodo.verPais() + " que " + pas.getPrimero().getPasajero().getPais() Si nodo.hd es nulo: NodoABB nuevo = nuevo NodoABB(pas) nodo.hd = nuevo Imprimir "Insertado en el subárbol derecho." Sino: insertar2(pas, nodo.hd)